home *** CD-ROM | disk | FTP | other *** search
Applesoft BASIC Source Code | 1988-04-10 | 2.3 KB | 104 lines | [FC] Applesoft BASIC Program (0x0801) |
- 5 ONERR GOTO 19100
- 10 GOSUB 20000
- 20 FI$ = "script": GOTO 1000
- 100 REM PLACE FILE NAME F$ INTO PARAMETER AREA
- 110 FOR II = 1 TO LEN(F$)
- 120 POKE AD +16 +II, ASC( MID$ (F$,II,1))
- 130 NEXT
- 140 POKE AD +16, LEN(F$)
- 150 RETURN
- 200 REM GET PARAMETER AREA INTO F$
- 210 F$ = "":JJ = PEEK(AD +16)
- 230 FOR II = 1 TO JJ:F$ = F$ + CHR$( PEEK(AD +16 +II)): NEXT : RETURN
- 1000 F$ = FI$: GOSUB 100
- 1005 LP = -1:LP$ = ""
- 1010 CALL CA +9: REM OPEN FILE
- 1020 CALL CA +12: REM READ A LINE
- 1030 GOSUB 200:PR$ = F$: PRINT CHR$(12)
- 1035 CALL CA +12: GOSUB 200:FP$ = F$
- 1040 CALL CA +12: GOSUB 200:EP$ = F$
- 1050 MM = -3: GOSUB 8400
- 1060 NP$ = ""
- 1100 CALL CA +12: REM READ A LINE
- 1110 IF PEEK(AD +16) >0 AND PEEK(AD +17) = ASC("%") THEN 1500
- 1120 POKE AD,0: POKE AD +1,ROW: CALL CA +15: REM WRITE LINE
- 1130 ROW = ROW +1
- 1140 GOTO 1100
- 1500 REM HANDLE COMMANDS
- 1510 GOSUB 200
- 1520 IF (F$ = "%pic") THEN GOSUB 8000: POKE 49235,0: GOTO 1100
- 1530 IF (F$ < >"%w") AND (F$ < >"%last") THEN 1540
- 1535 GOSUB 8100: IF (F$ < >"%end") THEN 1100
- 1540 IF (F$ = "%end") THEN 9000
- 1570 GOTO 1100
- 1700 CALL CA +18
- 1710 POKE -16303,0: REM TEXT ON
- 1720 PRINT CHR$(12)
- 1730 END
- 8000 REM PLOT PICTURE
- 8010 CALL CA +12: GOSUB 200: IF (F$ = LP$) AND (LP = 0) THEN RETURN
- 8015 CALL CA +3:LP$ = F$:LP = 0
- 8020 RETURN
- 8100 REM WAIT FOR RETURN, ESC, OR LEFT ARROW
- 8105 GOSUB 8160: GOSUB 8400:BU = 0
- 8110 IF PEEK( -16384) <128 THEN 8110
- 8120 K = PEEK( -16384): POKE -16368,0
- 8130 IF (K = 155) THEN F$ = "%end":TM = 1: RETURN
- 8135 IF (K = 136) THEN GOSUB 8300: GOTO 8150
- 8140 IF (K < >141) AND (K < >149) THEN 8110
- 8142 IF (F$ = "%last") THEN 8110
- 8145 REM ERASE BOTTOM OF SCREEN
- 8150 POKE 37,19: CALL 64546: PRINT : PRINT CHR$(11)
- 8155 POKE 37,23: CALL 64546
- 8157 RETURN
- 8160 VTAB 24
- 8162 IF (F$ = "%last") THEN POKE 1403,75 - LEN(EP$) -1: PRINT CHR$(27); CHR$(15);"H"; CHR$(14); CHR$(24);EP$;: GOTO 8180
- 8165 IF (MM = 0) THEN POKE 1403,75 - LEN(FP$): PRINT FP$;: GOTO 8180
- 8170 POKE 1403,75 - LEN(PR$) -1: PRINT CHR$(27); CHR$(15);"H"; CHR$(14); CHR$(24);PR$;
- 8180 ROW = 20
- 8190 RETURN
- 8300 REM BACK UP A SCREEN
- 8310 MM = MM -6: IF (MM <0) THEN MM = 0
- 8320 POKE AD +16,MK(MM): POKE AD +17,MK(MM +1): POKE AD +18,MK(MM +2)
- 8330 CALL CA +24
- 8335 BU = 1
- 8340 RETURN
- 8400 REM SET MARK
- 8410 CALL CA +21
- 8420 MM = MM +3
- 8430 MK(MM) = PEEK(AD +16):MK(MM +1) = PEEK(AD +17):MK(MM +2) = PEEK(AD +18)
- 8440 RETURN
- 9000 CALL CA +18: PRINT CHR$(12): GOTO 19000
- 10000 CALL CA +18: END
- 11000 PRINT CHR$(4);"CLOSE"
- 11010 AD = 912: REM $390
- 11020 FOR I = 1 TO LEN(NP$): POKE AD +I, ASC( MID$ (NP$,I,1)): NEXT
- 11030 POKE AD, LEN(NP$)
- 11035 POKE AD + LEN(NP$) +1,0
- 11040 J = LEN(NP$)
- 11050 IF ( MID$ (NP$,J,1) < >"/") THEN J = J -1: GOTO 11050
- 11060 AD = 640: REM $280
- 11070 FOR I = 1 TO J: POKE AD +I, ASC( MID$ (NP$,I,1)): NEXT
- 11080 POKE AD,J: POKE AD +J +1,0
- 11082 PP$ = LEFT$(NP$,J): PRINT CHR$(4);"PREFIX ";PP$
- 11084 PRINT CHR$(21)
- 11085 REM PRINT CHR$(4);"-";NP$
- 11090 CALL 768: REM $300
- 19000 POKE -16303,0: REM TEXT ON
- 19010 PRINT CHR$(12)
- 19012 POKE 2048,0: POKE 104,8: POKE 103,1
- 19013 POKE 49278,0: POKE 49247,0: REM Disable DHires
- 19015 PRINT CHR$(4);"PREFIX /TUTOR/MENU": PRINT CHR$(4);"-STARTUP"
- 19030 END
- 19100 PRINT CHR$(4);"CLOSE": GOTO 19000
- 20000 REM INITIALIZE VARIABLES
- 20010 D$ = CHR$(4)
- 20020 AD = 6400:CA = AD +128: REM $1900 AND $1980
- 20030 PRINT D$;"BLOAD DEMOASM"
- 20040 PRINT D$;"BLOAD LOADPRG"
- 20050 ROW = 20
- 20065 F$ = "/TUTOR/LEARNING/": GOSUB 100: CALL CA +27: REM SET PREFIX
- 20070 DIM MT$(9),MD$(9),ML(9),MK(240)
- 20100 HT = 1403
- 20110 TM = 1
- 20120 RETURN